#ifndef TRACKIMPLEMENTATION_H
#define TRACKIMPLEMENTATION_H

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>

class TrackImplementation
{
public:
    TrackImplementation();

    void setTarget(cv::Mat img, int x1, int y1, int x2, int y2);

    void pushImg(cv::Mat img);
    void camshift();
    void sift();
    void optflow();

    void getResult(int &x1, int &y1, int &x2, int &y2);
private:

    int m_x1;
    int m_y1;
    int m_x2;
    int m_y2;


    cv::Mat m_cur_img;
};

#endif // TRACKIMPLEMENTATION_H
